Real Time 3D: some tips to optimize your models.

The place to discuss creating, porting and modifying Celestia's source code.

Moderator: selden

Real Time 3D: some tips to optimize your models.

Postby ElChristou » Sun Jul 30, 2006 8:01 am

Folks,

It’s not the first time I’m talking about the optimization of 3D models, but because a few people are increasing their skills in 3D modeling, I think it’s time to give some example of classical “errorsâ€
Image
User avatar
ElChristou
 
Posts: 3807
Joined: Fri Feb 04, 2005 2:05 pm
Location: A Frenchie in Paraguay (South America)

Postby selden » Sun Jul 30, 2006 10:59 am

One minor point:

Some people like to go inside models and look around. It can be somewhat disturbing to do that and discover that the spacecraft has disappeared!
Selden
User avatar
selden
 
Posts: 9075
Joined: Tue Sep 03, 2002 7:21 pm
Location: NY, USA

Postby ElChristou » Sun Jul 30, 2006 11:30 am

selden wrote:One minor point:

Some people like to go inside models and look around. It can be somewhat disturbing to do that and discover that the spacecraft has disappeared!


This is not a minor point; if the inside is represented (like for the Flight Deck of my shuttle) very well, but I suppose visiting the inside of a model to see irrelevant meshes (or part of meshes) don't make much sense... or not?

Real time 3D is in general like the movie industry, all is... ...fake, just one side of the "reality" is represented... (for obvious reasons...)
Image
User avatar
ElChristou
 
Posts: 3807
Joined: Fri Feb 04, 2005 2:05 pm
Location: A Frenchie in Paraguay (South America)

Postby selden » Sun Jul 30, 2006 11:41 am

All I can say is that while exploring one of your shuttle models, I was slightly disappointed to find that the cargo bay was invisible (transparent) from the inside. A low-poly cylinder would have been reasonable, I think.
Selden
User avatar
selden
 
Posts: 9075
Joined: Tue Sep 03, 2002 7:21 pm
Location: NY, USA

Postby ElChristou » Sun Jul 30, 2006 11:53 am

You are right, but this kind of exercise must be controled, one of course is free to create an "inside" (even low poly), but this has nothing to do with the global optimization of a model (the topic of the thread)...

Concerning the shuttle, Tx for your opinion, I was thinking in adding such a fake closed payload but as I must return on the shuttle to end many details, this will be done in time.
Image
User avatar
ElChristou
 
Posts: 3807
Joined: Fri Feb 04, 2005 2:05 pm
Location: A Frenchie in Paraguay (South America)

Postby selden » Sun Jul 30, 2006 4:14 pm

Sorry I wasn't clear. I tend to not include all of the words I should.

I was concerned that some of your recommendations to delete internal, unseeable surfaces would make some parts of an object invisible (transparent) when it is explored on the inside. The person creating the object must decide which surfaces are important to the design of the object. Surfaces which never can be seen should, of course, not be created.
Selden
User avatar
selden
 
Posts: 9075
Joined: Tue Sep 03, 2002 7:21 pm
Location: NY, USA

Re: Real Time 3D: some tips to optimize your models.

Postby Chuft-Captain » Mon Jul 31, 2006 7:29 am

El C,

Thanks for the tips, however the one piece of information which seems to be missing is how you actually performed the optimizations in your modelling tool, particularly in the cases below, and what affect (if any) the re-designed polygons have on already existing texture mapping.
This would also be useful information I think.

Image Image


For example, would it be possible for you to elaborate on how you reduced the segmented mesh on the left (below) to the one on the right. I guess techniques will vary depending on the modeller's choice of tool, but I suspect it's not always as simple as executing an "optimize" command. Personally, I use Anim8tor, but blender is also popular.
Image

Image

Image

Slightly off topic, but another issue specific to Celestia affecting FPS (sometimes significantly) is the number of orbiting objects in the FOV.
Before rendering each object, it's position in it's elliptical orbit (and hence in the field of view) must first be recalculated.
If you have lots of objects in the same vicinity, this seems to have a significant impact on FPS, in addition to the rendering overhead.
(Note: I'm talking about 100's of objects, rather than just a few here)
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

O'NEILL COLONY
User avatar
Chuft-Captain
 
Posts: 1433
Joined: Sun Dec 18, 2005 1:26 am

Postby ElChristou » Mon Jul 31, 2006 7:31 am

selden wrote:Sorry I wasn't clear. I tend to not include all of the words I should.

I was concerned that some of your recommendations to delete internal, unseeable surfaces would make some parts of an object invisible (transparent) when it is explored on the inside. The person creating the object must decide which surfaces are important to the design of the object. Surfaces which never can be seen should, of course, not be created.


Exact, in general, the external meshes of a model won't be very useful to create an internal structure; if such structure is created, it should be optimized like the above example...
Last edited by ElChristou on Mon Jul 31, 2006 7:54 am, edited 1 time in total.
Image
User avatar
ElChristou
 
Posts: 3807
Joined: Fri Feb 04, 2005 2:05 pm
Location: A Frenchie in Paraguay (South America)

Postby Chuft-Captain » Mon Jul 31, 2006 7:36 am

selden wrote:All I can say is that while exploring one of your shuttle models, I was slightly disappointed to find that the cargo bay was invisible (transparent) from the inside. A low-poly cylinder would have been reasonable, I think.

I too was rather surprised, when I experienced this "effect" when in the payload bay, as in every other respect, your shuttle was impressive in the amount of detail.

It was a little strange to see the SME's suspended in space behind the cabin.
Made me think the Philadelphia Experiment was alive and well. :wink:
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

O'NEILL COLONY
User avatar
Chuft-Captain
 
Posts: 1433
Joined: Sun Dec 18, 2005 1:26 am

Re: Real Time 3D: some tips to optimize your models.

Postby ElChristou » Mon Jul 31, 2006 7:52 am

Chuft-Captain wrote:El C,

Thanks for the tips, however the one piece of information which seems to be missing is how you actually performed the optimizations in your modelling tool, particularly in the cases below, and what affect (if any) the re-designed polygons have on already existing texture mapping.
This would also be useful information I think.

For example, would it be possible for you to elaborate on how you reduced the segmented mesh on the left (below) to the one on the right. I guess techniques will vary depending on the modeller's choice of tool, but I suspect it's not always as simple as executing an "optimize" command. Personally, I use Anim8tor, but blender is also popular.


As you have corectly guess, this depend of the soft you are using and an "optimize" command do not exist...
All this is based on vertex manipulation and merging of the coexisting ones. This is why it's such a pain to optimize a model, in certain case better redo the whole stuff than try to optimize it... It's why it's much better to have such examples in mind and try not to do such "errors" from the beginning.

Concerning the mapping, this depend also of the soft you use; in my case for example, as I import a 3DS in my 3D soft I lose the mapping.


Chuft-Captain wrote:Slightly off topic, but another issue specific to Celestia affecting FPS (sometimes significantly) is the number of orbiting objects in the FOV.
Before rendering each object, it's position in it's elliptical orbit (and hence in the field of view) must first be recalculated.
If you have lots of objects in the same vicinity, this seems to have a significant impact on FPS, in addition to the rendering overhead.
(Note: I'm talking about 100's of objects, rather than just a few here)


This is normal, Celestia load the objects with their textures, so clearly more object more lost of FPS; it's also why optimized models are always welcome, less poly, less datas, better FPS. Imagine an asteroid field similar to those shown in StarWars, using models with too much poly will put whatever computer on the knees... Even using optimized low poly count models, if you put hundreds or thousands of them you will "kill" you config...
Image
User avatar
ElChristou
 
Posts: 3807
Joined: Fri Feb 04, 2005 2:05 pm
Location: A Frenchie in Paraguay (South America)

Re: Real Time 3D: some tips to optimize your models.

Postby rthorvald » Mon Aug 07, 2006 4:43 pm

[quote="ElChristou"]Folks,
It’s not the first time I’m talking about the optimization of 3D models, but because a few people are increasing their skills in 3D modeling, I think it’s time to give some example of classical “errorsâ€
Image
User avatar
rthorvald
 
Posts: 1230
Joined: Sun Oct 19, 2003 6:43 pm
Location: Norway

Postby ElChristou » Mon Aug 07, 2006 6:48 pm

Tx Runar, indeed, this is a basic tut, so basic that generally no one want to spend time to explain such things... a pity because for newbie I think it can really participate in a better (clearer) comprehension of what is really necessary for the definition of a volume...

For Chuft:
Here is a way to do correctly this mesh; as this is not my model, I want to respect exactly the original geometry so I will extract some lines from the original mesh:

Image

1- original mesh
2- extraction of the elements needed for a new extrusion (in red a section, in yellow an extruding path)
3- Section and extruding path alone
4- after extrusion (no triangulation)
5- corrected mesh (with triangulation)

You note it's much faster in this case to redo the mesh than to try to merge the useless points to achieve step 5.
If you can think this mesh directly from step 3... better! :wink:
Image
User avatar
ElChristou
 
Posts: 3807
Joined: Fri Feb 04, 2005 2:05 pm
Location: A Frenchie in Paraguay (South America)

Postby Chuft-Captain » Tue Aug 08, 2006 5:16 am

Thanks El C,

Would it be possible for you to post the object on the left (in .3ds format) so that I can practice with it in Anim8tor?

I assume you selected the outside edges (in red), filled the resulting shape, and then just used the yellow arc as a guide to how far to extrude it into a solid object.
At least, I think this is how I would have to do it in Anim8tor, which might be slightly different to how you do it.
JOOI, which tool do Do U use? (Ani8tor, Blender, other...?)
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

O'NEILL COLONY
User avatar
Chuft-Captain
 
Posts: 1433
Joined: Sun Dec 18, 2005 1:26 am

Re: Real Time 3D: some tips to optimize your models.

Postby Chuft-Captain » Tue Aug 08, 2006 5:35 am

ElChristou wrote:
Chuft-Captain wrote:Slightly off topic, but another issue specific to Celestia affecting FPS (sometimes significantly) is the number of orbiting objects in the FOV.
Before rendering each object, it's position in it's elliptical orbit (and hence in the field of view) must first be recalculated.
If you have lots of objects in the same vicinity, this seems to have a significant impact on FPS, in addition to the rendering overhead.
(Note: I'm talking about 100's of objects, rather than just a few here)


This is normal, Celestia load the objects with their textures, so clearly more object more lost of FPS; it's also why optimized models are always welcome, less poly, less datas, better FPS. Imagine an asteroid field similar to those shown in StarWars, using models with too much poly will put whatever computer on the knees... Even using optimized low poly count models, if you put hundreds or thousands of them you will "kill" you config...

All true :), but the point I was trying to make (not very eloquently) is that, all things being equal, multiple models will have lower FPS than the same number of polys in a single object.

eg. A single 100,000 polygon object in the FOV, will have a higher FPS than if you split it up into 1000 objects of 100 poly's each.
Rendering overhead is the same (same # of total polygons), but 999 additional orbital positions must be determined before each frame can be rendered. :)
This of course will be extra CPU clock cycles, rather than GPU cycles.
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

O'NEILL COLONY
User avatar
Chuft-Captain
 
Posts: 1433
Joined: Sun Dec 18, 2005 1:26 am

Postby ElChristou » Tue Aug 08, 2006 9:42 am

Chuft-Captain wrote:Thanks El C,

Would it be possible for you to post the object on the left (in .3ds format) so that I can practice with it in Anim8tor?

I assume you selected the outside edges (in red), filled the resulting shape, and then just used the yellow arc as a guide to how far to extrude it into a solid object.
At least, I think this is how I would have to do it in Anim8tor, which might be slightly different to how you do it.
which tool do Do U use? (Ani8tor, Blender, other...?)


You can download the mesh HERE
Extruding is always the same; a section of the future mesh along a path...
Some soft will then create directly the mesh, other will create a tube like mesh then you will have to close both extremities...

I'm using a comercial soft called Amapi pro v7.5; it's a powefull 3D modeler much more intuitive (so very easy to use) than the classic complete 3D suite like Max, Maya or Blender...
Image
User avatar
ElChristou
 
Posts: 3807
Joined: Fri Feb 04, 2005 2:05 pm
Location: A Frenchie in Paraguay (South America)

Next

Return to Development

Who is online

Users browsing this forum: No registered users and 0 guests